package com.aote.entity;

import java.util.Map;

import com.browsesoft.dbtools.DBTools;

/**
 * 实体类型与java类以及数据库表的对应关系
 */
public class EntityType {
	/**
	 * 实体类型
	 */
	private String entityType;

	/**
	 * 对应的java类
	 */
	private String javaClass;

	/**
	 * 对应的数据库表
	 */
	private String tableName;

	/**
	 * 对应的数据库表字段类型
	 */
	private Map fieldTypes;

	/**
	 * 是否延迟加载
	 */
	private boolean isLazy;

	/**
	 * 一般构造函数
	 * 
	 * @param entityType
	 * @param javaClass
	 * @param tableName
	 */
	public EntityType(String entityType, String javaClass, String tableName,
			boolean isLazy) {
		try {
			this.entityType = entityType;
			this.javaClass = javaClass;
			this.tableName = tableName;
			this.isLazy = isLazy;
			// 得到数据库表结构
			this.fieldTypes = DBTools.getDataTypes(tableName);
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

	/**
	 * 得到实体类型
	 * 
	 * @return 实体类型
	 */
	public String getEntityType() {
		return this.entityType;
	}

	/**
	 * 得到类名
	 * 
	 * @return 类名
	 */
	public String getClassName() {
		return this.javaClass;
	}

	/**
	 * 得到数据库表名
	 * 
	 * @return 数据库表名
	 */
	public String getTableName() {
		return this.tableName;
	}

	/**
	 * 看是否延迟加载
	 * 
	 * @return 是否延迟加载
	 */
	public boolean isLazy() {
		return this.isLazy;
	}

	/**
	 * 得到字段类型
	 * 
	 * @return 字段类型
	 */
	public Map getFieldTypes() {
		return this.fieldTypes;
	}
}
